var webpack = require("webpack");
var HtmlWebpackPlugin = require('html-webpack-plugin');
var ExtractTextPlugin = require('extract-text-webpack-plugin');

module.exports = {
    devtool: "source-map", //配置生成 Source Maps 的选项
    entry: __dirname + "/app/main.js", //入口文件路径
    output: {
        // path: __dirname + "/public/", //存放打包后文件的地方路径
        path: __dirname + "/build/",
        filename: "bundle.js" //打包后的文件名
        // filename: "[name]-[hash].js" //打包后的文件名，使用hash，生成使用
    },
    devServer: { //使用 Webpack 构建本地服务器
        contentBase: "./public",
        port: "9000",
        inline: true,
        historyApiFallback: true
    },
    module: { //配置loaders
        loaders: [{
            test: /\.json$/,
            loader: "json-loader"
        }, {
            test: /\.js$/,
            exclude: "/node_modules/", //编译打包时需要排除 node_modules 文件夹
            loader: "babel-loader"
        }, {
            test: /\.css$/,
            // loader: 'style-loader!css-loader?modules!postcss-loader' //添加对样式表的处理,感叹号的作用在于使同一文件能够使用不同类型的 loader
            use: ExtractTextPlugin.extract({
                fallback: "style-loader",
                use: "css-loader?modules!postcss-loader"
            })
        }]
    },
    plugins: [
        new webpack.BannerPlugin("Copyright Flying Unicorns inc."), //在这个数组中new一个实例就可以了
        new HtmlWebpackPlugin({
            template: __dirname + "/app/index.tmpl.html" //new一个插件的实例，并传入相关的参数
        }),
        new webpack.HotModuleReplacementPlugin(), //热加载插件
        new webpack.optimize.OccurrenceOrderPlugin(),
        new webpack.optimize.UglifyJsPlugin(), //压缩js
        new ExtractTextPlugin("style.css") //js/css分离成单独文件
        // new ExtractTextPlugin("[name]-[hash].css")
    ]
}